package main

import (
	"strconv"
	"time"
)

var chann = make(chan string, 10)

func main() {
	begin := time.Now()
	for i := 0; i < 3; i++ {
		go dos("第" + strconv.Itoa(i) + "件事")
	}

	for i := 0; i < 3; i++ {
		msg := <-chann
		println(msg + "已经完成")
	}
	println("Done")
	println("耗时：" + time.Now().Sub(begin).String())
}

func dos(thing string) {
	println("开始执行:" + thing)
	time.Sleep(time.Second)

	chann <- thing
}

//
//var ch = make(chan string, 10) // 创建大小为 10 的缓冲信道
//
//func download(url string) {
//	fmt.Println("start to download", url)
//	time.Sleep(time.Second)
//	ch <- url // 将 url 发送给信道
//}
//
//func main() {
//	for i := 0; i < 3; i++ {
//		go download("a.com/" + string(i+'0'))
//	}
//	for i := 0; i < 3; i++ {
//		msg := <-ch // 等待信道返回消息。
//		fmt.Println("finish", msg)
//	}
//	fmt.Println("Done!")
//}
